From fda2386ffc639db7a529429dcdf05348aa8b14e0 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Wed, 1 Apr 2015 17:21:35 +0100 Subject: [PATCH] xen/dts: Allow only IRQ translation that are mapped to main GIC Xen is only able to handle one GIC controller. Some platforms may contain other interrupt controllers. Make sure to only translate IRQ mapped into the GIC handled by Xen. Signed-off-by: Julien Grall Acked-by: Stefano Stabellini Acked-by: Ian Campbell --- xen/common/device_tree.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index d1c716f2e9..26fa298112 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -1058,8 +1058,14 @@ int dt_irq_translate(const struct dt_raw_irq *raw, struct dt_irq *out_irq) { ASSERT(dt_irq_xlate != NULL); + ASSERT(dt_interrupt_controller != NULL); - /* TODO: Retrieve the right irq_xlate. This is only work for the gic */ + /* + * TODO: Retrieve the right irq_xlate. This is only works for the primary + * interrupt controller. + */ + if ( raw->controller != dt_interrupt_controller ) + return -EINVAL; return dt_irq_xlate(raw->specifier, raw->size, &out_irq->irq, &out_irq->type); -- 2.30.2